iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0
自我挑戰組

cpe30天練習系列 第 17

cpe練習day17

  • 分享至 

  • xImage
  •  

今天是練習cpe的Vito’s family題目

程式碼

#include <bits/stdc++.h>
using namespace std;

int main ()
{	
	int T,r;
	cin >> T;
	while(T--)
	{
		cin >> r;
		int s[r], sum = 0;
		for(int i=0 ; i < r ; i++)
		{
			cin >> s[i];
		}
		sort(s , s+r);
		
		for(int i=0 ; i<r ; i++)
		{
			sum+=abs(s[i]-s[r/2]);
		}
		cout << sum <<endl;
	}
	return 0;
}

解題方向

  • sort(s, s+r) -> 將所有親戚的住址由小到大排序,因為我們要找到最適合的聚會地點,而這個位置通常是中位數
  • abs(s[i] - s[r/2]) -> 計算第i個親戚到中位數位置的距離。
  • sum+=abs(s[i]-s[r/2]) -> 把每個親戚的距離加總起來,就是最小總距離。

上一篇
cpe練習day16
下一篇
cpe練習day18
系列文
cpe30天練習19
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言